با وجود ادیتورهای بسیاری که این روزها در اختیار برنامهنویسان گذاشته شدهاند، گرچه دست برنامهنویسان و توسعهدهندگان در انتخاب ادیتوری مناسب ساده به نظر میرسد، اما این در حالی است که پس صرف کمی زمان، خواهیم دید که این کار آنقدر هم که ساده به نظر میرسد، ساده نیست! وقتی صاف و پوست کنده سؤال میکنیم که بهترین ادیتور کد برای برنامهنویسها چیست؟ به جواب دلنشینی نخواهیم رسید چرا که سلیقهها متفاوتند، اما ما در این مقاله قصد داریم بین ۴ تا از محبوبترین ادیتورها مقایسهای برابر و عادلانه انجام دهیم؛ مقایسهای جذاب بین اتم، سابلایم، ویژوال استودیو کد و ویم!
به طور کلی، هدف از ارائهٔ این مقاله این است که پس از خواندن ویژگیهای مثبت و منفی ادیتورهای معرفی شده، اطلاعات کافی برای انتخاب ادیتوری که نیازهایتان را برآورده کند داشته باشید.
پیش از هر چیز، لازم است نکتهای را یادآوری کنم، این که برخی از نکات ذکر شده برای ادیتورها و برخی از دیدگاههایی که در ادامه آورده شدهاند، بعضا براساس تجربیات شخصی مولف بوده است. من شخصاً از ادیتور اتم در سیستم عامل گنو/لینوکس (توزیع اوبنتو) استفاده میکنم؛ اما تمام سعی خود را کردهام که بدون در نظر گرفتن سلیقهٔ شخصی، ادیتورها را بررسی کنم! در نهایت این شما هستید که باید انتخاب کنید که کدام ادیتور برایتان مناسبتر است.
اتم (Atom):
هزینه: رایگان
توسعهدهنده: گیتهاب
پلتفرمهای پشتیبانی شده: تمام سیستمعاملها (macOS, Window, GNU/Linux)
تعریف اتم از خودش به این شکل است: «یک ادیتور قابل هک برای قرن ۲۱» اتم، ادیتوری نسبتاً جدید است که قدم به دنیای برنامهنویسان گذاشته است، با این حال از زمان انتشار اولین نسخهاش در سال ۲۰۱۴ تا به امروز، قدمهای بسیار بزرگی برداشته است (به خاطر داشته باشیم که در اینجا، منظور از هک، این است که بتوانیم نرمافزار را بسته به نیازهای خود کاستومایز کنیم.)
پکیجها:
قابلیت افزودن ویژگیهای اضافی برای ادیتورهای کد بسیار حائز اهمیت است، و این همان چیزی است که اتم در آن یکهتاز میدان است! قابلیت مدیریت پکیجها به صورت پیشفرض وجود دارد، اما اگر بازهم به پکیجهای موجود قانع نیستید، باید بدانید که همهٔ پکیجهای بر روی گیتهاب موجود هستند و میتوانید به راحتی به آنها دسترسی داشته باشید! امروز که درحال نوشتن این مقالهٔ هستم، اتم دقیقاً ۱۹۱۸ تم و ۵۶۵۱ پکیج آماده برای توسعهدهندگان ارائه کرده است. پکیجها در اتم نقش مهمی دارند، مثلاً ویژگیهایی مثل نمای درختی و نمای تنظیمات از ویژگیهای پکیجها هستند که میتوانید از آنها به آسانی استفاده کنید.
محیط کار:
عموما، ویرایش همه چیز در اتم نسبتاً ساده و روان است، شاید بپرسید پس بزرگترین نقطه ضعف اتم چیست؟ در حقیقت وقتی برای اولین بار اتم را اجراء میکنید، اگر پکیجهایی متناسب با نیازتان میخواهید، باید به دنبال اسم آن بگردید سپس آنرا در اتم نصب کنید (چرا که همهٔ پکیجها به صورت پیشفرض نصب نیستند.)
مثلاً پکیج minimap یکی از پکیجهای محبوب است که حدودا ۳ میلیون بار دانلود شده است که باعث میشود شما در سمت راست ادیتور، نقشهای کوچک از کدهایی که درحال ویرایش کردن هستید را مشاهده کنید و یا معمولاً برنامهنویسها نیاز به تکمیلکنندهٔ خودکار کدها (Autocompletion) دارند که میتوانند از پکیج (+Autocomplete) استفاده کنند. اگر به طور همزمان بر روی دو یا چند پروژ کار میکنید، میتوانید از پکیج Split-pane استفاده کنید.
اینها ویژگیهایی هستند که اتم خیلی خوب پشتیبانی میکند. یکی از ویژگیهای اتم که در سابلایم وجود ندارد، قابلیت Drag/Drop (کشیدن/رها کردن) است که در نمودار درختی فایلها هم پشتیبانی میشود. چنین ترفندهایی که بتوان چیزها را به راحتی در ادیتور رها کرد در سابلایم وجود ندارد! در نهایت، یکپارچگی و هماهنگی با گیت در اتم بسیار فوقالعاده است و مهمتر از همه این که این ادیتور توسط گیتهاب ساخته شده است!
شخصیسازی:
توانایی شخصیسازی یک ادیتور برای هماهنگی روند توسعه و شکل دادن ادیتور بر اساس سلیقه بهویژه برای برنامهنویسان بسیار مهم است. من همیشه به فعال کردن چیزهایی همچون Trim Whitespaces on Save و Save on Lost Focus of File نیاز دارم که هر دوی اینها را میتوانید به راحتی نصب و یا حذف کنید! حتی اگر بلد نیستید چگونه استایلها را حذف کنید، لازم نیست نگران باشید چون اتم به اینجا هم فکر کرده است و آموزشهای زیادی در این زمینه ارائه کرده است (لازم است بدانید اتم برپایه HTML/CSS/JS بر روی پلتفرم کرومیوم نوشته شده است.) به طور کلی، تنظیم کردن اتم برای من جالب به نظر میرسد، توانایی لغو کردن تنظیمات هر فایل و یا افزودن چیزی به ادیتور بسیار عالی به نظر میرسد. به طور کلی اعمال تغییراتی مثل: ایجاد تفاوت دندانههای جاوا اسکریپت، سیاساس و اچتیامال در اتم بسیار راحت است!
کارآیی:
اگر بخواهم یک مسأله آزاردهنده در مور اتم بگویم، در مورد سرعت اجرا است! ممکن است با اجرا اتم احساس کنید که این ادیتور کمی کند است؛ اگر فایلهای سنگین را باز کنید -بهخصوص اگر توسعهدهنده باشید و با فایلهای سنگین زیاد سروکار داشته باشید- حتما این موضوع را حس خواهید کرد (وقتی اولین نسخهٔ اتم را امتحان میکردم، عملکرد آن خیلی مشکل داشت، اما اتم با انتشار نسخههای جدید به شدت عملکردش را بهتر کرده است، اما هنوز خیلی جای پیشرفت دارد.)
قضاوت نهایی!
اتم یک ابزار فوقالعاده است، مخصوصاً برای کسانی که عاشق شخصیسازی کردن ابزارها و یا ادیتورها هستند؛ اتم حتی فراتر از انتظارات شما عمل میکند! به عنوان عضوی کوچک از دنیای برنامهنویسان، باید به شما بگویم این که بتوانید ادیتور خود را گسترش بدهید، هرچه میخواهید اضافه کنید، کم کنید، حذف کنید و … احساس قدرتی کمنظیر به شما میدهد. در آخر، بزرگترین جنبهٔ منفی اتم که من را کمی آزار میدهد جنبهٔ عملکرد آن به دلیل کند بودن در باز کردن فایلهای سنگین است. اما اتم به عنوان یک ادیتور رایگان و اپن سورس، بدون شک آیندهای درخشان برای خود رقم خواهد زد.
سابلایم (Sublime):
هزینه: ۷۰ دلار (لایسنس آزاد) بهعلاوهٔ آزمایش رایگان
توسعهدهنده: مهندس سابق گوگل، جان اسکینر
پلتفرمهای پشتیبانی شده: تمام سیستمعاملها (macOS, Window, GNU/Linux)
سابلایم در سال ۲۰۰۷ منتشر شد، یعنی تقریباً یک دهه را برای تکامل خود سپری کرده است؛ در سال ۲۰۱۶، سایت استکاورفلو یک نظرسنجی برای میزان محبوبیت ادیتورها در بین توسعهدهندگان انجام داد و سابلایم در بین ادیتورها، رتبهٔ دوم را کسب کرد (ادیتورهای ++Notepad و VisualStudio باهم رتبهٔ اول را بدست آوردند.) نسخهٔ V3، آخرین نسخهٔ منتشر شده از سابلایم تکست است است.
پکیجها:
اگر از کاربران سابلایم سؤال کنید که اولین پکیجی که باید نصب کنید چیست؟ جواب Sublime Package Control خواهد بود؛ با استفاده از این پکیج، میتوانید وارد سابلایم شوید و پکیجها را به راحتی از ریپازیتوریهای سابلایم دریافت کنید. سابلایم هم مانند اتم، تعداد زیادی پکیج برایتان آماده کرده است که ضروریترین آنها عبارتند از:
۱. SideBarEnhancements: بدون این پکیج امکان تغییر نام، جابجایی و تکثیر فایلها وجود نخواهد داشت.
۲. SublimeLinter: اضافه کردن Linter برای زبانهای مختلف (یک فریمورک برای جذاب کردن کدها)
۳. GitGutter: نشان دهندهٔ وضعیت کدها در یک خط، کنار شمارهٔ خط کد (به طور مثال، نشان میدهد که آیا یک خط کد تغییر کرده یا حذف شده است.)
محیط کار:
وقتی که در حال کار کردن با سابلایم هستم، استفاده از پروژهها برایم خیلی مهم است، این کار کمک میکند روی چیزهایی که نیاز دارم و میخواهم انجام دهم تمرکز کافی داشته باشم. جستوجو کردن میان فایلها و یا پیدا کردن یک فایل در سابلایم بسیار سریع و ساده است. ممکن است نیاز داشته باشید بخش کوچکی از کدهای خود را در میان صدها فایل جستوجو کنید و یا ممکن است نیاز پیدا کنید که بخش کوچکی از کدهای خود که در میان صدها فایل گم شده را جستوجو کنید؛ باید بدانید که سابلایم هرگز شما را از این بابت ناامید نخواهد کرد!
سابلایم هم مانند اتم قدرت عمدهٔ خود را از پلاگینهای کلیدی نصب شده بدست میآورد. در حقیقت ممکن است نصب پلاگینهایی مثل (Syntax Highlighting, JSON Formatters, Linters) وقتتان را بگیرد، اما با یک بار نصب، کلی از زمان توسعهٔ خود را صرفهجویی خواهید کرد! یکی از نقاط ضعف سابلایم که تاکنون به آن برخوردهام این است که هیچ پلاگین مناسبی وجود ندارد که با استفاده از آن بتوان تغییرات مرحلهای و دلنشینی ایجاد کرد! اما تنها چیزی که به نظرم میتواند آن را جبران کند استفاده از SourceTree است. اگر پلاگینی میشناسید که میتوانید این نقص را جبران کند حتماً در کامنتها اعلام کنید، تا به همه کمک کرده باشید!
شخصیسازی:
در این قسمت هم سابلایم بسیار شبیه به اتم عمل میکند! قدرت تغییر دادن و کنترل کردن جنبههای مختلفی مثل Save on Lost Focus و یا Trim Whitespace و حتی بیشتر در اختیار شما قرار دارد! پیکربندی فایلها از طریق فرمت جیسون صورت میگیرد و همچنین ترفندهای و تنظیمات مخفی دیگری وجود دارند که کار شما را بسیار راحت و سریع خواهند کرد.
کارآیی:
این قسمت مرحلهای است که سابلایم از اتم پیشی میگیرد؛ باز کردن، بستن و جستوجوی فایلها در سابلایم به طرز قابل توجهی روانتر و سریعتر از اتم است! تنها مسألهای که من در سابلایم با آن برخورد کردم، عملکرد نسبتاً بد پلاگین ها است، حتی وقتی شما یک پیغام هشدار دهنده دریافت میکنید به نظر میرسد که خیلی کند و زمانبر است!
قضاوت نهایی:
شاید احساس کنید نظر من در مورد سابلایم کمی افراطی است؛ اما به طور کلی، سابلایم یک ادیتور بسیار منعطف و پرسرعت است، همین دلایل هم سبب شده که سابلایم رتبهٔ دوم را درمیان محبوبترین ادیتورها کسب کند. البته به یاد داشته باشیم که این ادیتور رابطهٔ خیلی خوبی با زبان شیرین فارسی ندارد که امیدواریم در نسخههای بعدی، این مشکل مرتفع گردد اما در عین حال، راهکارهایی برای رفع این نقص ارائه شده.
ویژوال استودیو کد (Visual Studio Code یا به اختصار VSCode):
هزینه: رایگان
توسعهدهنده: مایکروسافت
پلتفرمهای پشتیبانی شده: تمام سیستمعاملها (macOS, Window, GNU/Linux)
ویژوال استودیو کد هم مثل اتم، ادیتوری نسبتاً جدید است که پا به دنیای کدنویسان گذاشته است. ویژوال استودیو کد یا به اختصار (VSCode)، در سال ۲۰۱۵ اولین نسخهٔ خود را منتشر کرد، با این حال از آنموقع تا به حال، توجه بسیاری از کدنویسان را به خود جلب کرده است. به طور کلی، مایکروسافت در اقدامی بسیار بزرگ، دست به خلق ادیتوری قدرتمند، انعطاف پذیر و مالتیپلتفرم زده است، که این ویژگیها باعث شده علاقهٔ توسعهدهندگان نسبت به این ادیتور جلب شود!
پکیجها:
ویژوال استودیو کد هم مانند ادیتورهای دیگر مجموعه پلاگینهای دلنشینی دارد به طوری که در حال حاضر هزاران پلاگین در این ادیتور در دسترس علاقمندان است. این ادیتور هم مانند اتم، برخی از مواردی را که فکر میکرده ضروری است را به صورت پیشفرض نصب کرده است. لازم است کمی وقت بگذارید تا مناسبترین پلاگینها را برای نیازتان پیدا کنید!
یکی از پلاگینهای مورد علاقهٔ من -و یکی از چیزهایی که مرا نسبت به VSCode علاقهمند میکند- Debugger of Chrome است. این پلاگین امکانی را در اختیار شما قرار میدهد که از آن طریق بتوان Breakpointهایی در سورس کد خود در نظر گرفته و زبانهایی مثل جاوااسکریپت را از طریق این ادیتور دیباگ (خطایابی) کنید (لازم به ذکر است که همین کار با نودجیاس هم میتوان انجام داد به این شکل که با در نظر گرفتن Breakpointهایی در کد خود، کد را در ترمینال اجرا کرده و نتیجه را مشاهده کرد.)
محیط کار:
اگرچه در مدل ساخت VSCode هم مانند اتم از HTML و CSS به علاوهٔ Node و Electron استفاده شده است، اما این در حالی است سرعت این ادیتور به طرز عجیبی بالاتر از اتم است و بدون هیچ دیر کردی، کدهایتان را اجر خواهد کرد من یک هفته از VSCode به طرز آزمایشی استفاده کردم، و به نظرم این ادیتور با این که نسبتاً جدید است اما راضیکننده است! در زمان استفاده از ویژوال استودیو کد، متوجه نزدیکی این ادیتور با سابلایم و اتم خواهید شد! به طور مثال، ویژگی دیباگ کردن که در بالا به آن اشاره شد مورد اجرا قرار گرفت، این نرمافزار عملکرد خوبی از خود نشان داد. به عنوان یک برگبرندهٔ دیگر، ویژوال استودیو کد هماهنگی بسیار خوبی با گیت دارا است. نه به قدرت SourceTree که من دریافتم، اما برای اجرا عملیات رایج مثل کامیتها و ایجاد تفاوتها، سرعت من را در هنگام کدنویسی افزایش میدهد.
شخصیسازی:
در VSCode هم مانند دو ادیتور قبل، قابلیت شخصیسازی به خوبی وجود دارد که میتوان به پنهانسازی، برجسته کردن متنها، تمها، ترفندهای زبانهای برنامهنویسی مختلف و موارد دیگر اشاره کرد.
کارآیی:
همانطور که در بالا هم گفتم، VSCode هم مانند اتم برپایهٔ فناوریهای وب -اچتیامال و سیاساس- به علاوهٔ Node.js و فریمورک Electron ساخته شده است، اما به طرز قابل توجهی از نظر عملکرد در اجرای فایلهای سنگین، بسیار سریعتر از اتم است! در حقیقت وقتی داشتم VSCode را به طور آزمایشی امتحان میکردم، جستوجو در بین فایلها و کدها بسیار سریع بود و همچنین هیچ کندی و دیرکردی در اجرا و تغییر فایلها احساس نکردم! به اعتقاد من یکی از تفاوتها میان Atom و VSCode رابط کاربری (UI) است، که VSCode بر اساس Monoca (یک ویرایشگر کد آنلاین) نوشته شده است، که احتمالاً دلیل تفاوت عملکرد بین اتم و VSCode نیز همین موضوع است! در مورد کارایی در نهایت به جرأت میتوانم بگویم که VSCode از نظر عملکرد و سرعت اجرا فایلها، با سابلایم برابری میکند.
قضاوت نهایی:
من شخصاً از کارکردن با VSCode تحت تأثیر قرار گرفتم، با توجه به نکاتی که مطرح کردم، مهاجرت به این ادیتور، برای اکثر برنامهنویسان دائمی و همیشگی خواهد بود؛ هماهنگی و یکپارچگی با گیت و وجود دیباگر (خطایاب) به صورت پیشفرض از ویژگیهایی است که اگر کاربر سابلایم باشید، باید با آنها دستوپنجه نرم کنید اما خیالتان راحت، چنین مشکلاتی در VSCode وجود ندارد!
ویم (Vim):
هزینه: رایگان
توسعهدهنده: برام مولینار (Bram Moolenaar)
پلتفرمهای پشتیبانی شده: تمام سیستمعاملها (macOS, Window, GNU/Linux)
من احساس میکنم رسم است که تمام برنامهنویسان حداقل یکبار از Vi یا Vim برای کدنویسی استفاده میکنند. توانایی ویرایش و بررسی فایلها بر روی سرور به صورت ریموت و از طریق ترمینال، یک نوآوری بزرگ به حساب میآید. من میدانم که پیشنهاد ویم به بعضی از افراد لرزه به تن آنها میاندازد، و یا حتی باعث برانگیخته شدن خشم بعضی از افراد هم میشود! وقتی هم که میخواستم ویم را از روی سیستمام حذف کنم، نگاهی به کاربران این نرمافزار انداختم؛ درواقع، قدرت آنها مرا حیرت زده کرد! در حقیقت یادگیری فوتوفن ویم نیاز به زمان دارد، اما اگر صبر و حوصله و وقت کافی دارید، پس میتوانید در کار کردن با این ادیتور استاد شوید، آنوقت محیط ویم به طرز غیرقابل باوری برایتان مفید و کارآمد خواهد بود! پیشنهاد من برای شروع یادگیری وبسایتهای VimGenius و OpenVim است!
پکیجها:
ویم بیش از ۱۴۰۰۰ پکیج برای کاربرانش آماده کرده است که درواقع تمام نیازهای شما را رفع خواهند کرد؛ جستوجوی درختی، هایلایت کردن سینتکسها، تمهای مختلف و هماهنگی و یکپارچگی با گیت مواردی هستند که در تمام نسخههای ویم وجود دارند! ویم به طرز غیرقابل باوری انعطافپذیر است، اما برای این که بدانید بهترین پلاگین برای نصب کدام است، قطعاً نیاز به تجربهٔ شخصی و یا استفاده از دانش کاربران ویم دارید (البته برای پیدا کردن بعضی از محبوبترین پلاگینها میتوانید به وبسایت VimAwesome مراجعه کنید.)
محیط کار:
خدمت کسانی که تا به حال با ویم کار نکردهاند باید عرض کرد که کار کردن با ویم بسیار متفاوتتر از بقیهٔ ادیتورها است! برای کار با ویم، لازم است کمی آشنایی با کامند لاین داشته باشید؛ ویم مثل ادیتورهای دیگر که آیکون دارند و با دو کلیک اجرا میشوند نیست! درواقع، ویم در قالب کامند لاین به شما امکان کدنویسی خواهد داد، یعنی برای کار با ویم لازم است ابتدا کامند لاین را باز کنید و دستور vim را وارد کنید تا ویم برای شما اجرا شود.
همچنین هنگام استفاده از ویم، عملاً ماوس شما بیاستفاده میشود، و تنها کیبورد شما به دردتان خواهد خورد چرا که در ویم برای هر کاری مثل باز کردن فایل، ذخیرهٔ فایل، بستن ادیتور و موارد دیگر، فقط باید از کلیدهای میانبر کیبورد استفاده کنید! اگر واقعاً میخواهید تبدیل به یکی از کاربران ویم شوید، لازم است بسیار مصمم و متعهد باشید، اما این قول را به شما میدهم اگر در کار کردن با ویم به تسلط برسید، هنگام کد زدن با این ادیتور احساس نبوغ واقعی به شما دست خواهد داد!
در حقیقت یکی از دلایلی که بعضی از افراد از کار کردن با این ادیتور هراس دارند این است که آنها به اندازهٔ کافی کلیدهای میانبر را بلد نیستند! ممکن است در ابتدای راه شما کمی سردرگم شوید یا هنگام کار کردن بر روی چند فایل در ویم کمی گیج شوید و خطا داشته باشید، اما اصلاً نگران نباشید زیرا با تمرین کردن، انجام این کارها برایتان بسیار پیشپاافتاده خواهد شد!
شخصیسازی:
ویم به طرز شگفتانگیزی قابلیت شخصیسازی دارد؛ اگر در گوگل سرچ کنید how to customize vim، مثالهای بیشماری از فایلهای از پیش آماده برای تنظیمات خواهید یافت. در یک کلام میتوانم بگویم که هرچیزی فکرش را بکنید، در ویم امکانپذیر است!
عملکرد:
تعیینکنندهٔ عملکرد و کارآیی در ویم شما هستید! عملکرد در ویم بستگی به این دارد که شما با چه سرعتی میتوانید دستورات را تایپ کنید! کاربران ویم از سرعت حیرتآور این ادیتور خبر دارند و اگر شما هم استفاده از این ادیتور را فرا بگیرید، سرعت عجیب آن را درک خواهید کرد.
قضاوت نهایی:
ویم خامترین ادیتور موجود است که میتوانید با آن کدزنی را هرطور که دوست داشته باشید شروع کنید! ویم بسیار سریع است و محیط توسعهٔ بسیار کارآمدی دارد؛ اگر بتوانید طاقت بیاورید و دستورات ویم را فرا بگیرید، شما مالک این ویژگیها خواهید بود! اگر هم جزو کسانی هستید که چیزهای جدید را از طریق گیم بهتر یاد میگیرد، یک بازی آنلاین هم وجود دارد تحت عنوان VIM Adventures که دستورات مقدماتی مثل حرکت در بین کدها و غیره را به شما در قالب بازی میآموزد.
کلام آخر!
هرکدام از ادیتورهایی که مورد بحث قرار گرفت نقاط ضعف و قوت خود را دارا است؛ به طور کلی، اگر میخواهید ببینید کدام ادیتور را میپسندید و یا کدامیک به دردتان میخورد، حداقل باید یک هفته آن را را آزمایش کنید. امیدواریم نکاتی که در مورد این ادیتورهای محبوب یادآور شدیم به شما در انتخاب ادیتور مورد نظرتان کمک کند. طبیعتاً نمیشد همهٔ ادیتورها را در این مقاله مورد بحث قرار داد، لذا به ۴ مورد از بهترینها اکتفا کردیم اما اگر فکر میکنید ادیتورهای دیگری هم هستند که قابلیتهایی مشابه -و حتی بیشتر- دارند، در بخش کامنتها از ادیتور خود دفاع کنید! ادیتور مورد علاقهٔ شما چیست و چرا؟
نظرات شما عزیزان: